<template>
  <el-dialog v-if="dialogVisible" title="商品信息" :visible.sync="dialogVisible" width="1000px">
    <div class="divBox">
      <div class="container">
        <el-form size="small" inline label-width="85px">
          <el-form-item label="商品分类：">
            <el-cascader v-model="tableFrom.cate_id" :options="merCateList" :props="{ checkStrictly: true, emitPath:false }"
              clearable @change="getList(1)" class="selWidth" />
          </el-form-item>
          <el-form-item label="商品搜索：">
            <el-input v-model="tableFrom.keyword" placeholder="请输入商品名称，关键字，编号" class="selWidth" clearable
              @keyup.enter.native="getList" />
          </el-form-item>
          <el-form-item>
            <el-button type="primary" size="small" @click="getList">查询</el-button>
          </el-form-item>
        </el-form>
      </div>
      <el-alert title="注：添加为预售商品后，原普通商品会下架；如该商品已开启其它营销活动，请勿选择！" type="warning" v-if="resellShow" show-icon>
      </el-alert>
      <el-table v-loading="listLoading" :data="tableData.data" style="width: 100%;margin-top:10px;" size="mini">
        <el-table-column width="55">
          <template slot-scope="scope">
            <el-radio v-model="templateRadio" :label="scope.row.product_id"
              @change.native="getTemplateRow(scope.row)">&nbsp</el-radio>
          </template>
        </el-table-column>
        <el-table-column prop="product_id" label="ID" min-width="50" />
        <el-table-column label="商品图" min-width="80">
          <template slot-scope="scope">
            <div class="demo-image__preview">
              <el-image style="width: 36px; height: 36px" :src="scope.row.image"
                :preview-src-list="[scope.row.image]" />
            </div>
          </template>
        </el-table-column>
        <el-table-column prop="store_name" label="商品名称" min-width="150" />
        <el-table-column prop="stock" label="库存" min-width="80" />
      </el-table>
      <div class="block mb20">
        <el-pagination :page-size="tableFrom.limit" :current-page="tableFrom.page" layout="prev, pager, next, jumper"
          :total="tableData.total" @size-change="handleSizeChange" @current-change="pageChange" />
      </div>
    </div>
  </el-dialog>
</template>

<script>
  // +----------------------------------------------------------------------
  // | CRMEB [ CRMEB赋能开发者，助力企业发展 ]
  // +----------------------------------------------------------------------
  // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  // +----------------------------------------------------------------------
  // | Licensed CRMEB并不是自由软件，未经许可不能去掉CRMEB相关版权
  // +----------------------------------------------------------------------
  // | Author: CRMEB Team <admin@crmeb.com>
  // +----------------------------------------------------------------------
  import {
    taProductAddListApi,
    taProductAddApi,
    categoryListApi
  } from '@/api/product'
  import {
    roterPre
  } from '@/settings'
  export default {
    name: 'GoodsList',
    props: {
      resellShow: {
        type: Boolean,
        default: false
      }
    },
    data() {
      return {
        dialogVisible: false,
        templateRadio: 0,
        merCateList: [],
        roterPre: roterPre,
        listLoading: true,
        tableData: {
          data: [],
          total: 0
        },
        tableFrom: {
          page: 1,
          limit: 10,
          cate_id: '',
          keyword: '',
        },
        multipleSelection: {},
        checked: []
      }
    },
    mounted() {
      this.getList()
      this.getCategorySelect()
      window.addEventListener('unload', (e) => this.unloadHandler(e))
    },
    methods: {
      getTemplateRow(row) {

        let data = {
          "product_id": row.product_id,
          "store_name": row.store_name,
          'cate_id':row.cate_id
        }

        taProductAddApi(data).then(res => {

          this.$message.success(res.message)
          this.$emit("getProduct");
          this.dialogVisible = false

        })

      },
      // 商品分类；
      getCategorySelect() {
        categoryListApi().then(res => {
          this.merCateList = res.data
        }).catch(res => {
          this.$message.error(res.message)
        })
      },
      // 列表
      getList(num) {
        this.listLoading = true
        this.tableFrom.page = num || this.tableFrom.page;
        taProductAddListApi(this.tableFrom)
          .then((res) => {
            this.tableData.data = res.data.list
            this.tableData.total = res.data.count
            this.listLoading = false
          })
          .catch((res) => {
            this.listLoading = false
            this.$message.error(res.message)
          })
      },
      pageChange(page) {
        this.tableFrom.page = page
        this.getList()
      },
      handleSizeChange(val) {
        this.tableFrom.limit = val
        this.getList()
      }
    }
  }
</script>

<style scoped lang="scss">

</style>
